package cn.tedu.charging.account.dao.persist.repository;

import cn.tedu.charging.account.pojo.entity.User;
import cn.tedu.charging.account.pojo.param.UserAddNewParam;
import cn.tedu.charging.account.pojo.vo.UserStandardVO;

/**
 * 处理用户数据的存储库接口
 *
 * @author wyy
 * @version 1.0
 */
public interface IUserRepository {
    /**
     * 插入用户数据
     *
     * @param userAddNewParam 新增用户数据
     * @return 受影响的行数
     */
    int insert(UserAddNewParam userAddNewParam);

    /**
     * 根据用户id删除用户数据
     *
     * @param id 用户id
     * @return 受影响的行数
     */
    int deleteById(String id);

    /**
     * 根据用户id修改用户的数据
     *
     * @param user 封装了用户id和新的数据的对象
     * @return 受影响的行数
     */
    int updateById(User user);

    /**
     * 统计用户数据的数量
     *
     * @return 用户数据的数量
     */
    UserStandardVO countByPhone(String Phone);

    /**
     * 根据openId统计用户的数据
     *
     * @param openId
     * @return 用户的数据
     */
    UserStandardVO selectByOpenId(String openId);
}
